package com.crm.system.service.activityManager;

import com.crm.common.model.DhPageInfo;
import com.crm.model.qo.activityManager.CustomerActivityAddQO;
import com.crm.model.qo.activityManager.CustomerProductActivityQO;
import com.crm.model.vo.activityManager.CustomerContractProductActivityVO;
import com.crm.model.vo.activityManager.CustomerProductActivityUpdateVO;
import com.crm.model.vo.activityManager.CustomerProductActivityVO;
import com.crm.model.vo.activityManager.CustomerRecentActivityVO;

/**
 * @author luojie
 * @date 2021/2/23 11:36
 */
public interface CustomerProductActivityService {

    /**
     * 活动管理--活动列表分页信息
     * @param customerProductActivityQO    ---活动列表查询参数
     * @param pageIndex/ pageSize          ---页码、分页大小
     * @param sortName/sortOrder           ---活动列表排序字段及规则
     * @author yincuimei
     * @return
     */
    DhPageInfo<CustomerProductActivityVO> selectCustomerProductActivityVOList(CustomerProductActivityQO customerProductActivityQO, Integer pageIndex, Integer pageSize, String sortName, String sortOrder);

    /**
     * 活动列表--根据活动ID查询活动信息(查看/编辑)
     * @param productActivityId ---活动ID
     * @author yincuimei
     * @return
     */
    CustomerProductActivityUpdateVO selectCustomerProductActivityById(String productActivityId);

    /**
     * 活动管理--添加活动
     * @param customerActivityAddQO
     * @return
     */
    int addProductActivity(CustomerActivityAddQO customerActivityAddQO);

    /**
     * 活动列表--(活动上架)根据活动ID查询活动是否在有效期内
     * @param productActivityId   ---活动ID
     * @author yincuimei
     * @return
     */
    Boolean selectActivityIsInValidityPeriod(String productActivityId);

    /**
     * 活动列表--活动上/下架操作
     * @param productActivityId    ---活动主键
     * @param activityShelfStatus  ---上下架状态(0:上架;1:下架)
     * @author yincuimei
     * @return
     */
    Boolean updateActivityShelfStatus(String productActivityId,String activityShelfStatus);

    /**
     * 活动列表--编辑活动
     * @param customerActivityAddQO
     * @return
     */
    int editProductActivity(CustomerActivityAddQO customerActivityAddQO);

    /**
     * 新建合同查询
     * @param pageIndex
     * @param pageSize
     * @param searchInfo
     * @return
     */
    DhPageInfo<CustomerContractProductActivityVO> selectValidityPeriodCustomerActivityList(Integer pageIndex, Integer pageSize, String searchInfo);

    /***
     * @Description:任务管理-任务列表 查询近期活动列表
     * @Author: luojie
     * @Date: 2021/4/26 16:45
     */
    DhPageInfo<CustomerRecentActivityVO> selectRecentActivityList();
}
